var runtime.gcBitsArenas
35 uses
runtime (current package)
malloc.go#L463: lockInit(&gcBitsArenas.lock, lockRankGcBitsArenas)
mheap.go#L2439: var gcBitsArenas struct {
mheap.go#L2470: head := (*gcBitsArena)(atomic.Loadp(unsafe.Pointer(&gcBitsArenas.next)))
mheap.go#L2477: lock(&gcBitsArenas.lock)
mheap.go#L2481: if p := gcBitsArenas.next.tryAlloc(bytesNeeded); p != nil {
mheap.go#L2482: unlock(&gcBitsArenas.lock)
mheap.go#L2491: if p := gcBitsArenas.next.tryAlloc(bytesNeeded); p != nil {
mheap.go#L2494: fresh.next = gcBitsArenas.free
mheap.go#L2495: gcBitsArenas.free = fresh
mheap.go#L2496: unlock(&gcBitsArenas.lock)
mheap.go#L2508: fresh.next = gcBitsArenas.next
mheap.go#L2509: atomic.StorepNoWB(unsafe.Pointer(&gcBitsArenas.next), unsafe.Pointer(fresh))
mheap.go#L2511: unlock(&gcBitsArenas.lock)
mheap.go#L2540: lock(&gcBitsArenas.lock)
mheap.go#L2541: if gcBitsArenas.previous != nil {
mheap.go#L2542: if gcBitsArenas.free == nil {
mheap.go#L2543: gcBitsArenas.free = gcBitsArenas.previous
mheap.go#L2546: last := gcBitsArenas.previous
mheap.go#L2547: for last = gcBitsArenas.previous; last.next != nil; last = last.next {
mheap.go#L2549: last.next = gcBitsArenas.free
mheap.go#L2550: gcBitsArenas.free = gcBitsArenas.previous
mheap.go#L2553: gcBitsArenas.previous = gcBitsArenas.current
mheap.go#L2554: gcBitsArenas.current = gcBitsArenas.next
mheap.go#L2555: atomic.StorepNoWB(unsafe.Pointer(&gcBitsArenas.next), nil) // newMarkBits calls newArena when needed
mheap.go#L2556: unlock(&gcBitsArenas.lock)
mheap.go#L2563: if gcBitsArenas.free == nil {
mheap.go#L2564: unlock(&gcBitsArenas.lock)
mheap.go#L2569: lock(&gcBitsArenas.lock)
mheap.go#L2571: result = gcBitsArenas.free
mheap.go#L2572: gcBitsArenas.free = gcBitsArenas.free.next
The pages are generated with Golds v0.7.6. (GOOS=linux GOARCH=amd64)